#ifndef VEC3_H
#define VEC3_H

class Vec3
{
public:
	Vec3();
	Vec3(float x, float y, float z);

	friend Vec3 operator+(const Vec3& v1, const Vec3& v2);
	friend Vec3 operator-(const Vec3& v1, const Vec3& v2);
	friend Vec3 operator*(const Vec3& vec, float scalar);
	friend Vec3 operator/(const Vec3& vec, float scalar);

	void operator+=(const Vec3& rhs);

	float x;
	float y;
	float z;
};

float vecLength(const Vec3& vec);
Vec3 vecUnitVector(const Vec3& vec);
float vecDotProduct(const Vec3& v1, const Vec3& v2);
Vec3 vecCrossProduct(const Vec3& v1, const Vec3& v2);
#endif // Vec3